<script>
	// 引入app版本升级
	// import AppUpdate from '@/utils/leruge-app-update.js'
	// APP自动升级
	import checkVersion from '@/utils/checkVersion.js'
	import Vue from 'vue'
	import Vuex from 'vuex'
	import {
		GetOperatorInfo,
		// 获取发票分类 票据类型等下拉列表数据
		GetTheDataByDicKey,
		// 获取公司下拉列表数据
		CompanyDataList,
		// 获取客户下拉列表数据
		CustomerInfoGetDataList,
		// 更换后的获取客户下拉列表哦接口  现在最新的接口
		CustomerInfoGetUionDataList,
		// 获取地区树结构    二级
		Base_DistrictGetTreeDataTList,
		//获取城市地区树结构 三级
		Base_DistrictGetTreeDataList,
		// 获取业务性质下拉列表数据
		BaseDictionaryllainGetTreeParentDataList,
		// app版本自动升级
		apk_editionGetApkEdtionData

	} from "@/api/interface.js";
	import {
		mapMutations,
		mapState
	} from 'vuex'
	export default {
		methods: {

			...mapMutations(['getLoginUserInfo'])
		},
		computed: {
			...mapState(["bgColor"]),
		},
		globalData: {


		},
		onLaunch: function() {
			console.warn('当前组件仅支持 uni_modules 目录结构 ，请升级 HBuilderX 到 3.1.0 版本以上！')
			console.log('App Launch')
			// 持久登录保存用户信息   禁止刷新浏览器导致vuex数据丢失
			const UserInfo = uni.getStorageSync('UserInfo'); //同步获取本地数据
			//判断本地缓存是否存在数据
			if (UserInfo !== "") {
				console.log('执行重新存储了', UserInfo)
				//传到vuex里面储存起来,并改变登录状态
				this.getLoginUserInfo(UserInfo)
			}
			// 隐藏默认底部导航栏
			uni.hideTabBar()




		},
		onShow: function() {
			console.log('App Show', this.bgColor)
			// app版本自动更新
			let systemInfo = ""
			let phoneSystem = ""
			uni.getSystemInfo({
				success: (res) => {
					systemInfo = res
					phoneSystem = res.platform //手机型号 Android、ios
				}
			})
			apk_editionGetApkEdtionData({
				AppType: phoneSystem
			}).then(resJson => {
				if (resJson.Success) {
					console.log('获取版本参数', resJson.Data)
					let newContent = resJson.Data.Remark.split('\n').join('<br>')
					// #ifdef APP-PLUS 
					var vers = plus.runtime.version
					if (resJson.Data.VersionNumber > vers) {
						// 模拟接口请求
						setTimeout(() => {
							// 正式apk新版本名称
							let name = 'V' + resJson.Data.VersionNumber; //新版本名称



							// let name = 'V1.2.0'; //新版本名称
							// 正式apk新版本
							// let code =Number(resJson.Data.VersionNumber.replace(/\./g, ''));//新版本号（数字）
							let code = resJson.Data.VersionNumber; //新版本号（数字）



							// 正式apk更新内容
							// let content = resJson.Data.Remark; //更新内容
							let content = newContent; //更新内容



							// 正式apk下载地址
							let url = resJson.Data.Url



							// let url = 
							// 	'http://121.36.26.224:10001/APK/APK/file/202406/eTG_v1.0.1_20240627.apk'; //app下载链接，（演示请换成真正在下载链接）      
							let forceUpdate = false; //是否强制更新  false  强制升级  true  不强制升级


							// 调用更新方法进行app更新
							checkVersion({
								name, //最新版本名称
								code, //最新版本号
								content, //更新内容
								url, //下载链接
								forceUpdate //是否强制升级			  
							})
						}, 1000)
					}
					// #endif
					// 条件编译，只在H5渲染
					// #ifdef H5
					let version_number = systemInfo.appVersion;
					// #endif
				}
			})





			//解决uniapp设置自动登录跳转首页时加载登录页问题
			setTimeout(() => {
				// #ifdef APP-PLUS 
				plus.navigator.closeSplashscreen()
				// #endif
			}, 2000)

			// 获取地区树结构  二级
			Base_DistrictGetTreeDataTList({}).then(resJson => {
				// 处理树结构回显组件
				resJson.Data.forEach(item => {
					item.text = item.Text
					item.value = item.Id
					if (item.children) {
						item.children.forEach(v => {
							v.text = v.Text
							v.value = v.Id
						})
					}
				})
				// 设置城市地区树结构
				this.$store.commit('setBase_DistrictGetTreeDataTList', resJson.Data)
			})
			// 获取地区树结构  三级
			Base_DistrictGetTreeDataList({}).then(resJson => {
				// 处理树结构回显组件
				resJson.Data.forEach(item => {
					item.text = item.Text
					item.value = item.Id
					if (item.children) {
						item.children.forEach(v => {
							v.text = v.Text
							v.value = v.Id
							if (v.children) {
								v.children.forEach(m => {
									m.text = m.Text
									m.value = m.Id
								})
							}
						})
					}
				})
				// 设置城市地区树结构
				this.$store.commit('setBase_DistrictGetTreeData', resJson.Data)
			})

			// 获取客户下拉列表数据
			CustomerInfoGetUionDataList({
				PageIndex: 1,
				PageRows: 2000,
				// 原来参数
				Search: {
					Condition: 'cCusName',
					Keyword: "",
				},
				SortField: "cCusCode",
				SortType: "desc"
			}).then(resJson => {
				// const arr = resJson.Data.map((item) => {
				// 	return {
				// 		value: item.Id,
				// 		text: item.cCusName,
				// 	}
				// })
				// 方便后续数据处理
				resJson.Data.forEach(item => {
					item['text'] = item.cCusName
					item['value'] = item.Id
				})
				this.$store.commit('setCustomerInfoOptions', resJson.Data)

			})

			// 获取票据类型下拉列表数据
			GetTheDataByDicKey({
				Condition: 'DicKey',
				Keyword: 'BillType',
			}).then(resJson => {
				const arr = resJson.Data.DictionaryDetailsList.map((item) => {
					return {
						value: item.Id,
						text: item.DicName,
					}
				})
				this.$store.commit('SetBillTypeOptions', arr)

			})
			// 获取费用类型下拉列表数据
			// 暂时不删除
			// GetTheDataByDicKey({
			// 	Condition: 'DicKey',
			// 	Keyword: 'ExpenseType',
			// }).then(resJson => {
			// 	const arr = resJson.Data.DictionaryDetailsList.map((item) => {
			// 		return {
			// 			value: item.Id,
			// 			text: item.DicName,
			// 		}
			// 	})
			// 	this.$store.commit('SetExpenseTypeOptions', arr)
			// })
			// 获取业务性质下拉列表数据
			BaseDictionaryllainGetTreeParentDataList({
				Search: {
					Keyword: 'ExpenseType',
				}
			}).then(resJson => {
				// 处理树结构回显组件
				resJson.Data.forEach(item => {
					item.text = item.Text
					item.value = item.Id
					if (item.children) {
						item.children.forEach(v => {
							v.text = v.Text
							v.value = v.Id
						})
					}
				})
				this.$store.commit('SetExpenseTypeOptions', resJson.Data)
			})

			// 获取发票分类下拉列表数据
			GetTheDataByDicKey({
				Condition: 'DicKey',
				Keyword: 'InvoiceClassification',
			}).then(resJson => {
				const arr = resJson.Data.DictionaryDetailsList.map((item) => {
					return {
						value: item.Id,
						text: item.DicName,
					}
				})
				this.$store.commit('SetInvoiceClassificationOptions', arr)
			})

			// 获取公司下拉列表数据
			CompanyDataList({}).then(resJson => {
				const arr = resJson.Data.map((item) => {
					return {
						value: item.Id,
						text: item.title,
					}
				})
				this.$store.commit('SetCompayListOptions', arr)
			})

			// 获取客户来源下拉列表数据
			GetTheDataByDicKey({
				Condition: 'DicKey',
				Keyword: 'CustSource',
			}).then(resJson => {
				const arr = resJson.Data.DictionaryDetailsList.map((item) => {
					return {
						value: item.Id,
						text: item.DicName,
					}
				})
				this.$store.commit('SetCustSourceOptions', arr)
			})

			// 交通方式下拉列表数据
			GetTheDataByDicKey({
				Condition: 'DicKey',
				Keyword: 'TransportationMode',
			}).then(resJson => {
				const arr = resJson.Data.DictionaryDetailsList.map((item) => {
					return {
						value: item.Id,
						text: item.DicName,
					}
				})
				this.$store.commit('SetTransportationModeOptions', arr)
			})


			// 隐藏默认底部导航栏
			// uni.hideTabBar()

			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		}
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import '@/uni_modules/uni-scss/index.scss';
	/* #ifndef APP-NVUE */
	// iconfont
	@import '@/static/iconfont.css';
	// @import '@/static/customicons.css';
	/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
	@import "@/node_modules/uview-ui/index.scss";

	// 设置整个项目的背景色
	page {
		background: #f6f6f6;
		width: 100%;
		height: 100%;
	}

	/* #endif */
	.font20 {
		font-size: 22rpx;
	}

	.text-ellipsis {
		white-space: nowrap;
		/* 确保文本不会换行 */
		overflow: hidden;
		/* 隐藏超出容器的文本 */
		text-overflow: ellipsis;
		/* 当文本超出容器时显示省略号 */
	}

	.example-info {
		font-size: 14px;
		color: #333;
		padding: 10px;
	}

	.textOverflow {
		overflow: hidden;
		text-overflow: ellipsis;
		// white-space: nowrap;
	}

	.textWidth {
		// display: inline-block;
		// max-width: calc(100% - 100px);
		font-weight: bold;
	}

	.floatRight {
		// float: right;
		line-height: 1.5;
	}

	.vert {
		// vertical-align: top;
		font-weight: bold;
	}

	.flexBox {
		display: flex;
	}

	.font14 {
		font-size: 28rpx;
	}

	.flex {
		display: flex;
	}

	.nowrap {
		flex-wrap: nowrap;
	}

	.wrap {
		flex-wrap: wrap;
	}

	.row {
		flex-direction: row;
	}

	.column {
		flex-direction: column;
	}

	.Jstart {
		justify-content: flex-start;
	}

	.Jbetween {
		justify-content: space-between;
	}

	.Jaround {
		justify-content: space-around;
	}

	.Jcenter {
		justify-content: center;
	}

	.Jend {
		justify-content: flex-end;
	}

	.Acenter {
		align-items: center;
	}

	.Aend {
		align-items: flex-end;
	}

	.Astart {
		align-items: flex-start;
	}

	.bold {
		font-weight: bold;
	}
</style>

<style>
	/* // iconfont图标公共颜色 */
	.icon {
		color: #007aff;
	}
</style>